home *** CD-ROM | disk | FTP | other *** search
AmigaBASIC Source Code | 1988-01-19 | 18.7 KB | 719 lines |
-
-
- REM WA1FSV VERSION DATED 10 APRIL 1986
- REM CALCULATIONS TAKE APPROX 12.5 SECONDS
- REM FOR EACH TRANSMITTER
-
- LOCATE 8,29: PRINT "WELCOME TO MINIMUF 3.5"
- LOCATE 12,23: PRINT "WOULD YOU LIKE TO SEE INSTRUCTIONS"
- LOCATE 16,28: INPUT "PLEASE TYPE ( Y OR N ) ",CHOICE$
- IF CHOICE$="YES" OR CHOICE$="yes" OR CHOICE$="Y" OR CHOICE$="y" THEN GOTO INSTRUCTIONS
-
- Driver:
-
- CLS
- CLEAR
- PI=4*ATN(1)
- DEF FNACS(X)= -ATN(X/SQR(-X*X+1))+(PI/2)
- R0=PI/180: P1=2*PI: R1=180/PI: P0=PI/2
- S$=" ":REM SPACE
- C$=",":REM COMMA
- DIM SF(22),SN(22),A$(4),M(12),LT(41),LN(41),NT$(41)
- DIM LO$(41),CI$(41),M$(12),NO(11)
-
- REM DATA BELOW IS FROM GRAPH OF SOLAR FLUX vs SUNSPOT
- REM NUMBER IN QST DECEMBER, 1982, P. 37
-
- DATA 64,72,79,87,95,103,111,120,128,137,146,155,165,174,184,194,204,214,224,234,244,444
- DATA 0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,400
- FOR I=1 TO 22
- READ SF(I): NEXT I
- FOR I=1 TO 22
- READ SN(I): NEXT I
- DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
- DATA 31,28,31,30,31,30,31,31,30,31,30,31
- FOR I=1 TO 12
- READ M$(I): NEXT I
- FOR I=1 TO 12
- READ M(I): NEXT I
-
- REM THESE ARE THE "TRANSMITTER" DATA STATEMENTS
-
- DATA ADDIS ABABA,ETHIOPIA,EASTERN AFRICA,9.0,-38.5
- DATA ANCHORAGE,ALASKA,N.AMERICA,61.5,150.0
- DATA ANKARA,TURKEY,ASIA,39.9,-32.9
- DATA ATHENS,GREECE,MEDITERRANEAN,38.0,-23.7
- DATA BOMBAY,INDIA,ASIA,19.0,-72.0
- DATA CAPETOWN,SOUTH AFRICA,SOUTHERN AFRICA,-33.9,-18.5
- DATA CARACAS,VENEZUELA,NORTHERN S.AMERICA,10.5,67.0
- DATA COOK ISLAND,-,OCEANA,-20.0,160.0
- DATA DAKAR,SENEGAL,WESTERN AFRICA,14.0,17.5
- DATA DUBLIN,IRELAND,WESTERN EUROPE,53.3,6.3
- DATA GUAM,-,OCEANA,12.0,-145.0
- DATA HALIFAX,NOVA SCOTIA,N.AMERICA,44.7,63.6
- DATA HELSINKI,FINLAND,NORTHERN EUROPE,60.2,-25.0
- DATA HONG KONG,-,ASIA,22.0,-114.0
- DATA HONOLULU,HAWAII,OCEANA,21.3,157.9
- DATA JERUSALEM,ISRAEL,WESTEREN ASIA,32.0,-35.0
- DATA LIBREVILLE,GABON,CENTRAL AFRICA,0.5,9.0
- DATA MADRID,SPAIN,SOUTHERN EUROPE,40.4,3.7
- DATA MANILA,PHILIPPINES,OCEANA,14.5,-121.0
- DATA MELBOURNE,AUSTRALIA,OCEANA,-37.8,-145.0
- DATA MILANO,ITALY,SOUTHERN EUROPE,45.5,-13.0
- DATA MOSCOW,USSR,EASTERN EUROPE,56.0,-37.0
- DATA MUNICH,GERMANY,CENTRAL EUROPE,48.1,11.6
- DATA NAPLES,ITALY,MEDITERRANEAN,40.0,11.0
- DATA NAIROBI,KENYA,EAST AFRICA,-1.5,-37.5
- DATA OSLO,NORWAY,NORTHERN EUROPE,60.0,-11.0
- DATA PARIS,FRANCE,WESTERN EUROPE,48.8,-2.3
- DATA PEKING,CHINA,ASIA,40.0,-116.0
- DATA QUITO,ECUADOR,WESTERN S.AMERICA,-0.5,78.0
- DATA RIO DE JANERIO,BRAZIL,EASTERN S.AMERICA,-23.0,43.0
- DATA SANTIAGO,CHILE,SOUTHERN S.AMERICA,-33.0,71.0
- DATA ST.AUGUSTINE,FLORIDA,N.AMERICA,29.9,81.4
- DATA SAN JUAN,PUERTO RICO,CARIBBEAN,18.5,66.5
- DATA SAN SALVADOR,EL SALVADOR,CENTRAL AMERICA,13.5,89.0
- DATA SINGAPORE,-,ASIA,1.0,-104.0
- DATA STOCKHOLM,SWEDEN,NORTHERN EUROPE,59.3,-18.1
- DATA TOKYO,JAPAN,ASIA,35.7,-139.8
- DATA TRIPOLI,LIBYA,NORTHERN AFRICA,32.5,-13.0
- DATA VIENNA,AUSTRIA,CENTRAL EUROPE,48.2,-16.3
- DATA WARSAW,POLAND,NORTHERN EUROPE,52.2,-21.0
- DATA SUNNYVALE,CALIFORNIA,N.AMERICA,37.7,121.5
-
- REM IF THE RECEIVER IS TO BE IN THE EASTERN UNITED STATES IT IS
- REM RECOMMENDED THAT THE ST.AUGUSTINE DATA BE REPLACED BY:
- REM "SAN FRANCISCO,CALIFORNIA,N.AMERICA,37.5,122.5"
-
- FOR I=1 TO 41
- READ CI$(I),NT$(I),LO$(I),LT(I),LN(I): NEXT I
-
-
- Transgrpselect:
-
- CLS: ALLIT=0
-
- PRINT
- PRINT
- PRINT
- PRINT TAB(23); "TRANSMITTER GROUP SELECTIONS ARE:"
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT TAB(20); "41 CHOICE OF ANY 1 TO 10 TRANSMITTERS"
- PRINT TAB(20); "42 NORTHERN EUROPE & EUROPEAN USSR"
- PRINT TAB(20); "43 WESTERN, CENTRAL & SOUTHERN EUROPE"
- PRINT TAB(20); "44 MEDITERRANEAN AREAS"
- PRINT TAB(20); "45 EAST, WEST & SOUTHERN AFRICA"
- PRINT TAB(20); "46 ASIA AND THE FAR EAST"
- PRINT TAB(20); "47 OCEANA AND THE SOUTH PACIFIC"
- PRINT TAB(20); "48 NORTH, SOUTH AND CENTRAL AMERICAS"
- PRINT TAB(20); "49 USER SUPPLIED INFORMATION"
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT TAB(23);: INPUT; "TYPE YOUR CHOICE ( 41 THRU 49 ) ",CHOICE
-
- IF CHOICE <41 OR CHOICE >49 THEN GOTO Transgrpselect
- IF CHOICE <>49 THEN ALLIT=1: GOTO 1760
-
- REM USER INPUTS TRANSMITTER DATA NEXT
- CLS
-
- 1690
-
- PRINT
- PRINT TAB(7);:INPUT; "LATITUDE OF TRANSMITTER - SOUTH IS NEGATIVE (-90 TO 90) ",L1
- PRINT
- IF L1 <-90 OR L1 >90 THEN CLS: PRINT "TRY AGAIN": GOTO 1690
- PRINT
-
- 1710
-
- PRINT TAB(7);:INPUT; "LONGITUDE OF TANSMITTER - EAST IS NEGATIVE (-360 TO 360) ",W1
- PRINT
- IF W1 <-360 OR W1 >360 THEN PRINT "TRY AGAIN": GOTO 1710
- PRINT
- PRINT TAB(7); "TYPE COMMENTS ON THIS TRANSMITTER BELOW"
- PRINT
- PRINT TAB(7);:INPUT; "",TCOM$
-
- GOTO Inmuf
-
- 1760
-
- IF CHOICE=42 THEN NU=5: NO(1)=13: NO(2)=22: NO(3)=26: NO(4)=36: NO(5)=40: GOTO Inmuf
- IF CHOICE=43 THEN NU=5: NO(1)=10: NO(2)=21: NO(3)=23: NO(4)=27: NO(5)=39: GOTO Inmuf
- IF CHOICE=44 THEN NU=5: NO(1)=4: NO(2)=16: NO(3)=18: NO(4)=24: NO(5)=38: GOTO Inmuf
- IF CHOICE=45 THEN NU=5: NO(1)=1: NO(2)=6: NO(3)=9: NO(4)=17: NO(5)=25: GOTO Inmuf
- IF CHOICE=46 THEN NU=6: NO(1)=3: NO(2)=5: NO(3)=14: NO(4)=28: NO(5)=35: NO(6)=37: GOTO Inmuf
- IF CHOICE=47 THEN NU=5: NO(1)=8: NO(2)=11: NO(3)=15: NO(4)=19: NO(5)=20: GOTO Inmuf
- IF CHOICE=48 THEN NU=8: NO(1)=2: NO(2)=7: NO(3)=12: NO(4)=29: NO(5)=30: NO(6)=31: NO(7)=32: NO(8)=33: GOTO Inmuf
-
- 1880
-
- FOR IJ=1 TO 11
- CLS: FOR I=1 TO 20: IF I <10 THEN PRINT S$;
- PRINT I; ". "; CI$(I); C$; NT$(I);: PRINT TAB(40); I+20; ". "; CI$(I+20); C$; NT$(I+20): NEXT I
- IF IJ >1 THEN PRINT " TRANSMITTERS SELECTED";: FOR J=1 TO IJ-1: PRINT NO(J); S$;: NEXT J: PRINT S$
- PRINT " ENTER NUMBER OF TRANSMITTER"; IJ: INPUT; " (1 TO 40). ENTER 'F' IF FINISHED."; NO$
- NO(IJ)=INT(VAL(NO$))
- IF IJ=11 THEN NO$="F"
- IF NO$="F" OR NO$="f" THEN NU=IJ-1: GOTO Inmuf
- NU=IJ
- NEXT IJ
-
-
- Inmuf:
-
- CLS
-
- PRINT
- PRINT
- PRINT
- PRINT TAB(30); "RECEIVER LOCATION"
- PRINT
- PRINT
- PRINT TAB(25); "1. "; CI$(41); ". "; NT$(41)
- PRINT
- PRINT TAB(25); "2. USER SUPPLIED LOCATION (LAT & LON)"
- PRINT
- PRINT
- PRINT TAB(25);:INPUT; "TYPE YOUR CHOICE (1 OR 2) ", CHOICE$: IF CHOICE$="" THEN CHOICE$="1"
-
- CHOICE =INT(VAL(CHOICE$)): IF CHOICE=1 THEN RCOM$=CI$(41)+C$+S$+NT$(41)+S$+S$+LO$(41)+S$
- IF CHOICE=1 THEN L2=LT(41): W2=LN(41): GOTO 2100
-
- REM HERE USER INPUTS RECEIVER DATA
-
- CLS
-
- PRINT
- PRINT
- PRINT
-
- 2040
-
- PRINT TAB(12);:INPUT; "LATITUDE OF RECEIVER - SOUTH IS NEGATIVE (-90 TO 90) ",L2
- IF L2 <-90 OR L2 >90 THEN PRINT TAB(27); "TRY AGAIN": GOTO 2040
-
- 2060
-
- PRINT
- PRINT TAB(12);:INPUT; "LONGITUDE OF RECEIVER - EAST IS NEGATIVE (-360 TO 360) ",W2
- IF W2 <-360 OR W2 >360 THEN PRINT TAB(12); "TRY AGAIN": GOTO 2060
- PRINT
- PRINT
- PRINT TAB(21); "TYPE YOUR COMMENTS ON THIS RECEIVER BELOW"
- PRINT
- PRINT TAB(30);: INPUT;"", RCOM$
-
- 2100
-
- PRINT: PRINT
- PRINT TAB(25);: INPUT "MONTH (1 TO 12) ",M0: M0=INT(M0)
- IF M0 >=1 AND M0 <=12 THEN 2140
- PRINT TAB(25); "INVALID MONTH, MUST BE IN RANGE (1,12)": GOTO 2100
-
- 2140
-
- PRINT: PRINT TAB(25); "DAY OF MONTH (1 TO";M(M0);: INPUT") ", D6: D6=INT(D6)
- IF D6 >=1 AND D6 <=M(M0) THEN 2180
- PRINT TAB(25); "INVALID DAY. MUST BE IN RANGE (1,";M(M0);").": GOTO 2100
-
- 2180
-
- PRINT: PRINT TAB(25);: INPUT "SOLAR FLUX ( >64 TO <444 ) ",FLUX
- IF FLUX <64 OR FLUX >444 THEN PRINT TAB(25); "FLUX OUT RANGE TRY AGAIN": GOTO 2180
-
- REM HERE THE SUNSPOT TABLE IS EVALUATED
- FOR I=2 TO 22
- IF SF(I) >=FLUX THEN FINAL=I: GOTO 2250
- NEXT I
-
- 2250
-
- REM LINEAR INTERPOLATION IS NOW USED TO FIND SUNSPOT NUMBER
- REM FROM SOLAR FLUX. THIS PROGRAM IS MOST ACCURATE FOR
- REM SOLAR FLUX OF 64 TO 244. IN THE RANGE OF 244 TO 444 AN
- REM UNCERTAIN EXTRAPOLATION IS USED.
-
- FA=(SF(FINAL)-FLUX)/(SF(FINAL)-SF(FINAL-1))
- S9=SN(FINAL)-FA*(SN(FINAL)-SN(FINAL-1))
- S9=INT(S9+0.5)
-
- PRINT: PRINT: PRINT TAB(20);: INPUT "DO YOU DESIRE PRINTED OUTPUT (Y OR N) ", PRINTOUT$
- IF PRINTOUT$="N" OR PRINTOUT$="n" THEN 2700
-
- LPRINT: LPRINT "DATE: ";M$(M0);" "; D6
- IF ALLIT=1 THEN 2430
- LZ=(INT(L1*100+0.5))/100
- WZ=(INT(W1*100+0.5))/100
- LPRINT "TRANSMITTER LOCATION: LATITUDE "; LZ; "LONGITUDE"; WZ
- LPRINT TCOM$
-
- 2430
-
- LPRINT
- LZ=(INT(L2*100+0.5))/100
- WZ=(INT(W2*100+0.5))/100
- LPRINT "RECEIVER LOCATION: LATITUDE "; LZ; "LONGITUDE "; WZ
- LPRINT RCOM$
- LPRINT "SOLAR FLUX = "; FLUX
- LPRINT "SUNSPOT NUMBER ="; S9
- LPRINT
- IF ALLIT=1 THEN 2660
- LPRINT " HOUR MUF(MHZ)"
- LPRINT
- L1=L1*R0: W1=W1*R0: L2=L2*R0: W2=W2*R0
-
- FOR T5=0 TO 23
-
-
-
- GOSUB Mainmuf
-
- LZ=(INT(T5*10))/10
- WZ=(INT((J9+0.05)*10))/10
-
- LPRINT; SPC(6-LEN(STR$(INT(LZ))));LZ; SPC(10-LEN(STR$(INT(WZ)))-LEN(STR$(LZ-INT(LZ)))); WZ
-
- NEXT T5
-
- LPRINT CHR$(12);: REM THIS IS EPSON JX-80 SPEAK FOR TOP-OF-FORM
-
- 2610
-
- CLS
- LOCATE 10,25: PRINT "WOULD YOU LIKE TO RUN ANOTHER"
- LOCATE 12,31: PRINT "MINIMUF 3.5 TRIAL"
- LOCATE 16,29: INPUT "PLEASE TYPE ( Y OR N ) ",YE$
- IF YE$="Y" OR YE$="" OR YE$="y" OR YE$="YES" OR YE$="yes" THEN GOTO Transgrpselect
-
- END
-
- 2660
-
-
- REM HERE A LARGE NUMBER OF TRANSMITTER OUTPUTS ARE PRINTED
-
- LPRINT: LPRINT: LPRINT TAB(32) "TRANSMITTER DATA": LPRINT: LPRINT
-
- FOR I=1 TO NU
-
- TCOM$=CI$(NO(I))+C$+S$+NT$(NO(I))+S$+S$+LO$(NO(I))+S$
- IF I=10 THEN 2680
-
- 2670
-
- LPRINT "NO."; S$; I; S$; TCOM$; "LAT= "; LT(NO(I)); " LON= "; LN(NO(I)): GOTO 2690
-
- 2680
-
- LPRINT "NO."; I; S$; TCOM$; " LAT= "; LT(NO(I)); " LON= "; LN(NO(I))
-
- 2690
-
- NEXT I
-
- LPRINT: LPRINT: LPRINT TAB(15) "MUF (MHZ) FOR EACH TRANSMITTER AT EACH UTC HOUR": LPRINT:LPRINT
- LPRINT "HOUR"; SPC(2);
- L2=L2*R0: W2=W2*R0
-
- FOR I=1 TO NU
-
- LPRINT "NO.";I;: NEXT I
- LPRINT S$:LPRINT
- SPA=5: REM SPACING FOR OUTPUT LINE
-
- FOR T5=0 TO 23
-
- LPRINT; SPC(3-LEN(STR$(INT(T5)))); T5;
- LH=1
-
- FOR I=1 TO NU
-
- L1=LT(NO(I))*R0: W1=LN(NO(I))*R0
-
- GOSUB Mainmuf
-
- WZ=(INT((J9+0.05)*10))/10
- LPRINT; SPC(SPA-LH-LEN(STR$(INT(WZ)))); WZ;
- LH=LEN(STR$(WZ))-LEN(STR$(INT(WZ)))
- IF LH >2 THEN LH=0
-
- NEXT I
-
- LPRINT S$
-
- NEXT T5
-
- LPRINT CHR$(12);:REM THIS IS EPSON JX-80 SPEAK FOR "TOP-OF-FORM"
-
- GOTO 2610 : REM THIS IS THE END OF PRINTER ROUTINE
- REM NEXT PRINTS TO THE SCREEN ONLY
-
-
-
- 2700
-
- CLS
-
- PRINT: PRINT "DATE: ";M$(M0);" "; D6
- IF ALLIT=1 THEN 2710
- LZ=(INT(L1*100+0.5))/100
- WZ=(INT(W1*100+0.5))/100
- PRINT "TRANSMITTER LOCATION: LATITUDE "; LZ; "LONGITUDE"; WZ
- PRINT TCOM$
-
- 2710
-
- PRINT
- LZ=(INT(L2*100+0.5))/100
- WZ=(INT(W2*100+0.5))/100
- PRINT "RECEIVER LOCATION: LATITUDE "; LZ; "LONGITUDE "; WZ
- PRINT RCOM$
- PRINT "SOLAR FLUX = "; FLUX
- PRINT "SUNSPOT NUMBER ="; S9
- PRINT
- IF ALLIT=1 THEN 2730
- PRINT " HOUR MUF(MHZ)"
- PRINT
- L1=L1*R0: W1=W1*R0: L2=L2*R0: W2=W2*R0
-
- FOR T5=0 TO 23
-
-
-
- GOSUB Mainmuf
-
- LZ=(INT(T5*10))/10
- WZ=(INT((J9+0.05)*10))/10
-
- PRINT; SPC(6-LEN(STR$(INT(LZ))));LZ; SPC(10-LEN(STR$(INT(WZ)))-LEN(STR$(LZ-INT(LZ)))); WZ
-
- NEXT T5
-
- 2720
-
- CLS
- LOCATE 10,25: PRINT "WOULD YOU LIKE TO RUN ANOTHER"
- LOCATE 12,31: PRINT "MINIMUF 3.5 TRIAL"
- LOCATE 16,29: INPUT; "PLEASE TYPE ( Y OR N ) ",YE$
- IF YE$="Y" OR YE$="" OR YE$="y" OR YE$="YES" OR YE$="yes" THEN GOTO Transgrpselect
-
- END
-
- 2730
-
-
- REM HERE A LARGE NUMBER OF TRANSMITTER OUTPUTS ARE PRINTED TO SCREEN
-
- PRINT: PRINT: PRINT TAB(32) "TRANSMITTER DATA": PRINT: PRINT
-
- FOR I=1 TO NU
-
- TCOM$=CI$(NO(I))+C$+S$+NT$(NO(I))+S$+S$+LO$(NO(I))+S$
- IF I=10 THEN 2750
-
- 2740
-
- PRINT "NO."; S$; I; S$; TCOM$; "LAT= "; LT(NO(I)); " LON= "; LN(NO(I)): GOTO 2760
-
- 2750
-
- PRINT "NO."; I; S$; TCOM$; " LAT= "; LT(NO(I)); " LON= "; LN(NO(I))
-
- 2760
-
- NEXT I
-
- PRINT: PRINT: PRINT TAB(15) "MUF (MHZ) FOR EACH TRANSMITTER AT EACH UTC HOUR": PRINT:PRINT
- PRINT "HOUR"; SPC(2);
- L2=L2*R0: W2=W2*R0
-
- FOR I=1 TO NU
-
- PRINT "NO.";I;: NEXT I
- PRINT S$: PRINT
- SPA=5: REM SPACING FOR OUTPUT LINE
-
- FOR T5=0 TO 23
-
- PRINT; SPC(3-LEN(STR$(INT(T5)))); T5;
- LH=1
-
- FOR I=1 TO NU
-
- L1=LT(NO(I))*R0: W1=LN(NO(I))*R0
-
- GOSUB Mainmuf
-
- WZ=(INT((J9+0.05)*10))/10
- PRINT; SPC(SPA-LH-LEN(STR$(INT(WZ)))); WZ;
- LH=LEN(STR$(WZ))-LEN(STR$(INT(WZ)))
- IF LH >2 THEN LH=0
-
- NEXT I
-
- PRINT S$
-
- NEXT T5
-
- GOTO 2610
-
- REM MINIMUF 3.5 BEGINS HERE FOLKS
-
- Mainmuf:
-
-
- 3000 K7 = SIN (L1) * SIN (L2) + COS (L1) * COS (L2) * COS (W2-W1)
- 3010 IF K7 >-1 THEN 3030
- 3020 K7=-1: G1=0: GOTO 3060
- 3030 IF K7 <1 THEN 3050
- 3040 K7=1: G1=0: GOTO 3060
- 3050 G1=FNACS(K7)
- 3060 K6=1.59*G1
- 3070 IF K6 >=1 THEN 3090
- 3080 K6=1
- 3090 K5=1/K6
- 3100 J9=100
-
- 3110 FOR K1=1/(2*K6) TO 1-1/(2*K6) STEP 0.9999-1/K6
-
- 3120 IF K5=1 THEN 3140
- 3130 K5=0.5
- 3140 P=SIN(L2)
- 3150 Q=COS(L2)
- 3160 A=(SIN(L1)-P*COS(G1))/(Q*SIN(G1))
- 3170 B=G1*K1
- 3180 C=P*COS(B)+Q*SIN(B)*A
- 3190 D=(COS(B)-C*P)/(Q*SQR(1-C^2))
- 3200 IF D >-1 THEN 3220
- 3210 D=0: GOTO 3250
- 3220 IF D <1 THEN 3240
- 3230 D=0: GOTO 3250
- 3240 D=FNACS(D)
- 3250 W0=W2+SGN(SIN(W1-W2))*D
- 3260 IF W0 >=0 THEN 3280
- 3270 W0=W0+P1
- 3280 IF W0 <P1 THEN 3300
- 3290 W0=W0-P1
- 3300 IF C >-1 THEN 3320
- 3310 C=-1: L0=P0: GOTO 3350
- 3320 IF C <1 THEN 3340
- 3330 C=1: L0=P0: GOTO 3350
- 3340 L0=P0-FNACS(C)
- 3350 Y1=0.0172*(10+(M0-1)*30.4+D6)
- 3360 Y2=0.409*COS(Y1)
- 3370 K8=3.82*W0+12+0.13*(SIN(Y1)+1.2*SIN(2*Y1))
- 3380 K8=K8-12*(1+SGN(K8-24))*SGN(ABS(K8-24))
- 3390 IF COS (L0+Y2) >-0.26 THEN 3480
- 3400 K9=0
- 3410 G0=0
- 3420 M9=2.5*G1*K5
- 3430 IF M9 <=P0 THEN 3450
- 3440 M9=P0
- 3450 M9=SIN(M9)
- 3460 M9=1+2.5*M9*SQR(M9)
- 3470 GOTO 3730
- 3480 K9=(-0.26+SIN(Y2)*SIN(L0))/(COS(Y2)*COS(L0)+0.001)
- 3490 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.63944
- 3500 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2))
- 3510 T4=K8+K9/2-12*(1+SGN(K8+K9/2-24))*SGN(ABS(K8+K9/2-24))
- 3520 C0=ABS(COS(L0+Y2))
- 3530 T9=9.7*C0^9.6
- 3540 IF T9 >0.1 THEN 3560
- 3550 T9=0.1
- 3560 M9=2.5*G1*K5
- 3570 IF M9 <=P0 THEN 3590
- 3580 M9=P0
- 3590 M9=SIN(M9)
- 3600 M9=1+2.5*M9*SQR(M9)
- 3610 IF T4 <T THEN 3640
- 3620 IF (T5-T)*(T4-T5) >0 THEN 3650
- 3630 GOTO 3780
- 3640 IF (T5-T4)*(T-T5) >0 THEN 3780
- 3650 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5))
- 3660 G9=PI*(T6-T)/K9
- 3670 G8=PI*T9/K9
- 3680 U=(T-T6)/T9
- 3690 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8)
- 3700 G7=C0*(G8*(EXP(-K9/T9)+1))*EXP((K9-24)/2)/(1+G8*G8)
- 3710 IF G0 >=G7 THEN 3730
- 3720 G0=G7
- 3730 G2=(1+S9/250)*M9*SQR(6+58*SQR(G0))
- 3740 G2=G2*(1-0.1*EXP((K9-24)/3))
- 3750 G2=G2*(1+(1-SGN(L1)*SGN(L2))*0.1)
- 3760 G2=G2*(1-0.1*(1+SGN(ABS(SIN(L0))-COS(L0))))
- 3770 GOTO 3840
- 3780 T6=T5+12*(1+SGN(T4-T5))*SGN(ABS(T4-T5))
- 3790 G8=PI*T9/K9
- 3800 U=(T4-T6)/2
- 3810 U1=-K9/T9
- 3820 G0=C0*(G8*(EXP(U1)+1))*EXP(U)/(1+G8*G8)
- 3830 GOTO 3730
- 3840 IF G2 >J9 THEN 3860
- 3850 J9=G2
-
- 3860 NEXT K1
-
- 3870 RETURN
-
-
- INSTRUCTIONS:
-
-
- CLS
- PRINT
- PRINT TAB(27); "MINIMUF 3.5 WITH DRIVER"
- PRINT
- PRINT TAB(26); "BY JAMES F. SULLIVAN KB8DE"
- PRINT TAB(20); "COPYRIGHT (C) 1982 BY JAMES F. SULLIVAN"
- PRINT
- PRINT TAB(22); "RECODED TO RUN ON YOUR AMIGA 1000"
- PRINT TAB(27); "AND THE DRIVER EXPANDED"
- PRINT
- PRINT TAB(29); "BY RONALD F. JACOBS"
- PRINT TAB(36); "WA1FSV"
- PRINT
- PRINT TAB(9); "MINIMUF 3.5 HAS BEEN ADAPTED FROM THE PROGRAM APPEARING IN"
- PRINT TAB(9); "'MINIMUF: A SIMPLIFIED MUF PREDICTION PROGRAM FOR MICRO-"
- PRINT TAB(9); "COMPUTERS',BY R.B.ROSE;QST MAGAZINE; DEC,1982;PP.36-38."
- PRINT
- PRINT TAB(9); "MINIMUF 3.5 IS PRESENTED HERE WITH THE PERMISSIONS OF THE"
- PRINT TAB(9); "AMERICAN RADIO RELAY LEAGUE AND ROBERT B. ROSE."
- PRINT
- PRINT TAB(9); "THIS PROGRAM MAY BE COPIED FOR NON-PROFIT DISTRIBUTION PROVIDED"
- PRINT TAB(9); "ALL CREDITS AND COPYRIGHT INFORMATION IS RETAINED IN THE COPY."
- PRINT
- PRINT TAB(26); "PRESS <RETURN> TO CONTINUE";:INPUT "", Z$
-
- CLS
-
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT TAB(9); "MINIMUF PREDICTS THE MAXIMUM USEABLE FREQUENCY FOR RADIO"
- PRINT TAB(9); "PROPOGATION BETWEEN TWO LOCATIONS ON THE EARTH AT ALL HOURS"
- PRINT TAB(9); "OF THE DAY WHEN THE DATE AND 10.7cm SOLAR FLUX IS INPUT."
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT TAB(9); "MINIMUF HAS BEEN USED BETWEEN 2 AND 50 MHZ. IT IS MOST"
- PRINT TAB(9); "USEFULL FOR PATH LENGHTS FROM 250 TO 6000 MILES."
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT TAB(26); "PRESS <RETURN> TO CONTINUE.";:INPUT "",Z$
-
- CLS
-
- PRINT
- PRINT
- PRINT TAB(9); "THE DEFAULT RECEIVER LOCATION IS IN THE LAST 'TRANSMITTER'"
- PRINT TAB(9); "DATA STATEMENT. TO CHANGE THIS, 5 ITEMS MUST BE GIVEN:"
- PRINT TAB(9); "CITY, STATE, LOCATION, LATITUDE, AND LONGITUDE."
- PRINT
- PRINT
- PRINT TAB(9); "IF THE RECEIVER IS USED IN THE EASTERN UNITED STATES IT IS"
- PRINT TAB(9); "SUGGESTED THAT THE LINE FOR 'ST.AUGUSTINE' BE EXCHANGED"
- PRINT TAB(9); "WITH THE DATA IN THE REMARKS AFTER THE DEFAULT RECEIVER."
- PRINT
- PRINT
- PRINT TAB(9); "AN 80 COLUMN PRINTER IS DESIREABLE FOR OUTPUT OF MORE THAN ONE"
- PRINT TAB(9); "TRANSMITTER LOCATION AT A TIME AND FOR 80 COLUMN LISTINGS."
- PRINT
- PRINT
- PRINT TAB(9); "10.7cm SOLAR FLUX INFORMATION (REQUIRED BY THIS PROGRAM)"
- PRINT TAB(9); "MAY BE OBTAINED AT 18 MINUTES AFTER EACH HOUR ON STATIONS"
- PRINT TAB(9); "WWV OR WWVH AT 2.5, 5, 10, 15, OR 20 MEGAHERTZ."
- PRINT
- PRINT
- PRINT TAB(26); "PRESS <RETURN> TO CONTINUE";: INPUT "",Z$
-
- CLS
-
- GOTO Driver
-
-
- REM ****************************
- REM * Driver for MINIMUF 3.5 *
- REM * by JAMES F. SULLIVAN *
- REM * KB8DE *
- REM * COPYRIGHT (C) 1982 *
- REM * by JAMES F. SULLIVAN *
- REM * THIS PROGRAM MAY BE *
- REM * COPIED FOR NON-PROFIT *
- REM * DISTRIBUTION *
- REM * *
- REM * THE ACTUAL MINIMUF 3.5 *
- REM * PROGRAM IS IN LINES 3000 *
- REM * THROUGH 3870. THE INPUT *
- REM * FOR MINIMUF 3.5 BEGINS *
- REM * AT "DRIVER". HOW TO USE *
- REM * MINIMUF 3.5 AND "DRIVER" *
- REM * BEGIN AT "INSTRUCTIONS" *
- REM * *
- REM * THE ORIGINAL MINIMUF 3.5 *
- REM * AND DRIVER WERE ALTERED *
- REM * FOR USE ON THE APPLE II+ *
- REM * by JAMES F. SULLIVAN. *
- REM * *
- REM * THE MINIMUF 3.5 PROGRAM *
- REM * APPEARED IN THE ARTICLE *
- REM * "MINIMUF: A SIMPLIFIED *
- REM * MUF-PREDICTION PROGRAM *
- REM * FOR MICROCOMPUTERS" by *
- REM * ROBERT B. ROSE K6GKU, IN *
- REM * QST MAGAZINE; DEC, 1982; *
- REM * PP. 36-38; AND IS COPY- *
- REM * RIGHTED BY THE AMERICAN *
- REM * RADIO RELAY LEAGUE.IT IS *
- REM * PRESENTED HERE, FOR NON- *
- REM * PROFIT DISTRIBUTION ONLY *
- REM * WITH THE PERMISSIONS OF *
- REM * THE AMERICAN RADIO RELAY *
- REM * LEAGUE AND R. B. ROSE. *
- REM * *
- REM * *
- REM * ALL OF THE ABOVE CREDITS *
- REM * MUST BE REPRODUCED WITH *
- REM * ANY COPY, WRITTEN OR *
- REM * ELECTRONIC, FOR PER- *
- REM * MISSIONS TO COPY FOR NON-*
- REM * PROFIT USE TO BE VALID. *
- REM ****************************
- REM
- REM
- REM ****************************
- REM * THE PROGRAM "DRIVER" WAS *
- REM * RECODED AND ENHANCED TO *
- REM * TO RUN ON THE COMMODORE *
- REM * AMIGA 1000 COMPUTER *
- REM * USING "AmigaBasic" BY: *
- REM * RONALD F. JACOBS *
- REM * WA1FSV *
- REM * INTERESTED USERS OF THE *
- REM * PROGRAM "MINIMUF 3.5" *
- REM * MAY OBTAIN THEIR FREE *
- REM * COPY BY CONTACTING WA1FSV*
- REM * OR THE AMERICAN RADIO *
- REM * RELAY LEAGUE. *
- REM ****************************
-
-
-
-
-
-
-